//! 测试可变ref. &mut T
//! 当出现&mut X 之后， X的其他引用不可再出现

pub fn test() {
    let mut a = vec![1, 2, 3];
    // let b = &mut a; // 此处虽然没问题，但是之后a的引用就不可使用了

    { // 任意变量variable具有{T, life}时才有意义，而`life`与作用的scope相关，比如此处出了scope, b = {&Vec<i32>, null} 就无效了
        let b = &mut a;
        b[0] = 4;
    }

    println!("{:?}", a); // 此处会再次使用&a，没有问题
}